package GUI.almacen;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import items.AlmacenContenedor;
import items.Item;

import javax.swing.table.AbstractTableModel;

import DataBase.DAO;
/**
 * 
 * @author Jes�s L�vano
 *
 */
public class TablaAlmacen extends AbstractTableModel{
	private static final long serialVersionUID = 1L;
	private AlmacenContenedor _almacen;
	private Connection BD;
	
	private Vector<Datos> datos=new Vector<Datos>();
	
	
	public TablaAlmacen(AlmacenContenedor almacen,Connection c) {
		 super();
		 this.BD=c;
		 this._almacen=almacen;
		 
		 Statement statement;
	    	try{
	    	statement=BD.createStatement();
	    	ResultSet rs=statement.executeQuery("select id_articulo,nombre,marca,categoria,stock from articulo");
	    	ResultSetMetaData metadata=rs.getMetaData();
	    	int col=metadata.getColumnCount();
	    	String[] ss=new String[6];
	    	while(rs.next()){
	    		 int i=0;
	    		  
	    			for(int j=1;j<=col;j++){
	    				ss[i]=rs.getString(j);
	    				i++;	
	    			}
	    			datos.add(new Datos(ss[0],ss[1],ss[2],ss[3],ss[4]));
	    				
	    	}
	    	}catch(SQLException e){e.printStackTrace();}
		 
	}

	
	
    public String getColumnName(int column) { 
    	String[] nombreColumnas= {"ID","NOMBRE","DESCRIPCION","MARCA","CANTIDAD"};
		return nombreColumnas[column];
    } 
    
        class Datos{
    	String id,nombre,descripcion,marca,cantidad;
    	public Datos(String i,String n,String d,String m,String c){
    		super();
    		this.id=i;
    		this.nombre=n;
    		this.descripcion=d;
    		this.marca=m;
    		this.cantidad=c;
    	}
    	public String getId(){
    		return this.id;
    	}
    	public String getNombre(){
    		return this.nombre;
    	}
    	public String getDesc(){
    		return this.descripcion;
    	}
    	public String getMarca(){
    		return this.marca;
    	}
    	public String getCantidad(){
    		return this.cantidad;
    	}
    }
    
    public int getColumnCount() {

		return 5;
	}

	@Override
	public int getRowCount() {
		return datos.size();
	}

	@Override
	public Object getValueAt(int row, int column) {
            Object datoElemento=null;
  
    		Datos d=datos.get(row);
    		if(column==0)datoElemento=d.getId();
    		else if(column==1)datoElemento= d.getNombre();
    		else if(column==2)datoElemento= d.getMarca();
      		else if(column==3) datoElemento=d.getDesc();
      		else if(column==4)datoElemento=d.getCantidad();
      	
    		return datoElemento;
        
	}
	
	
	public void actualizarTabla(){
		this.fireTableDataChanged();
	}
	

	
	public boolean isCellEditable(int fila, int col){
		return false;
	}
	

}
